﻿Imports System.IO
Public Class Users

    Private _lstUsuarios As New List(Of User)
    ''' <summary>
    ''' Devuelve una lista con todos los usuarios guardados en el servidor
    ''' La lista no se puede modificar desde de fuera
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public ReadOnly Property LstUsuarios As ObjectModel.ReadOnlyCollection(Of User)
        Get
            Return _lstUsuarios.AsReadOnly
        End Get
    End Property
    ''' <summary>
    ''' Constructor que inicializa  todos los usuarios del servidor del fichero
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()

    End Sub

    Public Sub recuperarDeLosUsuarios()
        Dim fich As IO.StreamReader
<<<<<<< .mine
        If File.Exists("Clientes.txt") Then
            Try
                fich = New IO.StreamReader("Clientes.txt")
                'fich.EndOfStream() ' Si ha llegado a fin de  fichero
                Do While Not fich.EndOfStream
                    Dim miCliente As New User
                    miCliente.Servidor = fich.ReadLine()
                    miCliente.Usuario = fich.ReadLine()
                    miCliente.Contraseña = fich.ReadLine()
                    miCliente.Puerto = fich.ReadLine()
                    _lstUsuarios.Add(miCliente)
                Loop

            Catch ex As Exception
                If Not IsNothing(fich) Then fich.Close()
                MessageBox.Show(ex.Message)
            End Try
        Else

            If Not IsNothing(fich) Then fich.Close()
        End If
=======
        Try
            fich = New IO.StreamReader("Clientes.txt")
            'fich.EndOfStream() ' Si ha llegado a fin de  fichero
            Do While Not fich.EndOfStream
                Dim miUsuario As New User
                miUsuario.Servidor = fich.ReadLine()
                miUsuario.Usuario = fich.ReadLine()
                miUsuario.Contraseña = fich.ReadLine()
                miUsuario.Puerto = fich.ReadLine()
                _lstUsuarios.Add(miUsuario)
            Loop
            fich.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
>>>>>>> .r81
    End Sub

    ''' <summary>
    ''' Añade un nuevo usuario al servidor, pasando como parametros 
    ''' todos sus datos
    ''' </summary>
    ''' <param name="servidor"></param>
    ''' <param name="usuario"></param>
    ''' <param name="contraseña"></param>
    ''' <param name="puerto"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overloads Function Añadir(ByVal servidor As String, ByVal usuario As String, ByVal contraseña As String, ByVal puerto As Integer) As Boolean
<<<<<<< .mine
        Dim cliente As New User
        cliente.Servidor = servidor
        cliente.Usuario = usuario
        cliente.Contraseña = contraseña
        cliente.Puerto = puerto
        If _lstUsuarios.Contains(cliente) Then Return False
        _lstUsuarios.Add(cliente)
        GuardarCliente()
        Return True
=======
        Dim otroUsuario As New User
        otroUsuario.Servidor = servidor
        otroUsuario.Usuario = usuario
        otroUsuario.Contraseña = contraseña
        otroUsuario.Puerto = puerto
        If _lstUsuarios.Contains(otroUsuario) Then Return Nothing
        _lstUsuarios.Add(otroUsuario)
        Return otroUsuario
>>>>>>> .r81
    End Function
    ''' <summary>
    ''' Añade un nuevo usuario al servidor pasando como parametro
    ''' el usuario objeto
    ''' </summary>
    ''' <param name="usuario"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Overloads Function Añadir(ByVal usuario As User) As User
        If _lstUsuarios.Contains(usuario) Then Return Nothing
        _lstUsuarios.Add(usuario)

        Return usuario
    End Function
    ''' <summary>
    ''' Borra a un usuario pasado por parametro
    ''' </summary>
    ''' <param name="usuario"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function Borrar(ByVal usuario As User) As String
        If Not _lstUsuarios.Contains(usuario) Then
            Return "Usuario inexistente"
        End If
        _lstUsuarios.Remove(usuario)
        Return "Usuario borrado"
    End Function
    ''' <summary>
    ''' Guardamos todos los usuarios en el fichero Clientes
    '''  y/o actualiza todos los cambios
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub GuardarUsuario()
        Dim fich As New IO.StreamWriter("Clientes.txt") 'Crea  el fichero nuevo
        For Each MiUsuario As User In _lstUsuarios
            fich.WriteLine(MiUsuario.Servidor)
            fich.WriteLine(MiUsuario.Usuario)
            fich.WriteLine(MiUsuario.Contraseña)
            fich.WriteLine(MiUsuario.Puerto)
        Next
        fich.Close()
    End Sub

End Class
